/**
*	Universidad del Valle de Guatemala
*	Algoritmos y Estructuras de Datos
*	Hoja de Trabajo 3
*	Carlos Alvarez, 11004
*	Rafael Mendez, 11171
*       Rafael Berganza, 09135
*	Rodrigo Avelar, 11192
 *      Jose Angel Estrada, 11453
*	Archivador.java
*	Descripción: Esta clase tiene la funcion del manejo de archivos
**/


import java.io.*;
public class Archivador {

    // se crean los atributos de la clase
    private BufferedReader inFile;
    private String fileName;

    
    /**
     * Constructor de la clase Archivador
     * @param FileName , se refiere al nombre del archivo a utilizar
     */
    public Archivador(String FileName) {
        // se crea un archivo temporal en la ruta del archivo de texto
        this.fileName = FileName;
        try {
                inFile = new BufferedReader(new FileReader(this.fileName));
            } catch (IOException io) {
                System.out.println("El Error es!: " + io.getMessage());
            }
    }

    // este metodo lee una linea del archivo de texto y retorna el valor de la lectura en una cadena
    public String readLine() {
        
            try {
                return inFile.readLine();
            } catch (IOException io) {
                System.out.println("El Error es!: " + io.getMessage());
            }
        return null;
    }

    // este metodo escribe una cadena de caracteres en el archivo de texto
    public void writeLine(String line) {
        PrintWriter OutFile;
        try {
              OutFile = new PrintWriter(new FileWriter(fileName));
              OutFile.println(line);
              OutFile.close();     
        }
         catch (IOException io) {
            System.out.println("no se se pudo agregar una linea porque:" + io.getMessage());
         }
    }
    
    // este metodo cierra la escritura en el archivo de texto
    public void close() {
        try {
            inFile.close();
        } catch (IOException io) {
            System.out.println("El Error es!: " + io.getMessage());
        }

    }
}
